package Day_0130;

/**
 * @author zxc
 * @date 2023/01/30 21:03
 **/
public class StaticDemo {
    public static void main(String[] args) {
        /**
         * static关键字用法 ：
         * （1）静态变量和静态方法.也就是被static所修饰的变量/方法都属于类的静态资源,类实例所共享;
         *
         * （2）static也用于静态块,多用于初始化操作:
         * public calss PreCache{
         *   static{
         *    //执行相关操作
         *   }
         * }
         *
         * （3）static也多用于修饰内部类,此时称之为静态内部类.
         *
         * （4）静态导包,即 import static .import static是在JDK 1.5之后引入的新特性,
         * 可以用来指定导入某个类中的静态资源,并且不需要使用类名,可以直接使用资源名
         * ===》 静态导入包之后，即可以使用所导入包对应类的所有静态资源;
         */
        System.out.println(3 * 0.1);
        System.out.println(0.3);

        /**
         * a = a + b; 与 a += b;之间的区别 ：
         * += 操作符会进行隐式自动类型转换;
         * （1）此处a+=b隐式的将加操作的结果类型强制转换为持有结果的类型;
         * （2）而a=a+b则不会自动进行类型转换;
         */
        byte a = 127;
        byte b = 0;
//        b = a + b;
        b += a;
        System.out.println(b);

        short c = 1;
        // 此处会将右边的表达式结果（int类型）强制转换为short类型;
        c += 30000;
        System.out.println(c);
    }
}
